package com.chalk.common.constant;

/**
 * @author wangyihao
 */
public class StatusConstants {

    /**
     * 发货状态（订单包裹表）
     */
    public enum OrderPackageStatus {
        /**
         * 未发货
         */
        NOT_SHIPPED(0, "未发货"),
        /**
         * 已发货
         */
        SHIPPED(1, "已发货"),
        /**
         * 已签收
         */
        SIGNING(2, "已签收"),
        /**
         * 丢包
         */
        PACKET_LOSS(3, "丢包"),
        /**
         * 拒收
         */
        REJECT(4, "拒收");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private OrderPackageStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

    }

    /**
     * 发货状态（订单表）
     */
    public enum OrderShippedStatus {
        /**
         * 待备货
         */
        WAITING_FOR_STOCK(0, "待备货"),
        /**
         * 已推仓库/备货中
         */
        STOCKING(1, "已推仓库/备货中"),
        /**
         * 已出库
         */
        OUT_OF_STOCK(2, "已出库"),
        /**
         * 已发货
         */
        SHIPPED(3, "已发货"),
        /**
         * 已签收
         */
        SIGNING(2, "已签收");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private OrderShippedStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

    }


    /**
     * 发货状态（订单表）
     */
    public enum OrderStatus {
        /**
         * 新提交
         */
        NEW_SUBMISSION(0, "新提交"),
        /**
         * 待支付
         */
        WAIT_PAY(1, "待支付"),
        /**
         * 待发货
         */
        WAIT_DELIVERED(2, "待发货"),
        /**
         * 待收货
         */
        PENDING_RECEIPT(3, "待收货"),
        /**
         * 已收货
         */
        RECEIVED(4, "已收货"),
        /**
         * 已完成
         */
        COMPLETED(5, "已完成");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private OrderStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

    }


    /**
     * 会员收货地址是否默认
     */
    public enum MemberAddrIsDefault {
        /**
         * 未默认
         */
        NOT_DEFAULT(0, "未默认"),
        /**
         * 默认
         */
        DEFAULT(1, "已默认");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private MemberAddrIsDefault(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

    }

    /**
     * 订单支付状态
     */
    public enum OrderPayStatus {
        /**
         * 未支付
         */
        NOT_PAY(0, "未支付"),
        /**
         * 已支付
         */
        PAY(1, "已支付"),
        /**
         * 部分支付
         */
        PART_PAY(1, "部分支付");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private OrderPayStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }

    }

    /**
     * 商品 是否启用销售属性，0、未启用，1、启用，默认0
     */
    public enum ItemIsUsedSalesProp {
        /**
         * 否
         */
        DISENABLE(0, "未启用"),
        /**
         * 已删除
         */
        ENABLE(1, "启用");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private ItemIsUsedSalesProp(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }


    /**
     * 广告审核状态（0、未审核，1、已审核，2、待审核，3、未通过，默认0)
     */
    public enum AdvertConsorStatus {
        /**
         * 未审核
         */
        UNAUDITED(0, "未审核"),
        /**
         * 已审核
         */
        AUDITED(1, "已审核"),
        /**
         * 待审核
         */
        WAIT(2, "待审核"),
        /**
         * 未通过
         */
        NOT_PASS(3, "未通过");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private AdvertConsorStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }

    /**
     * 商品上下架状态
     */
    public enum ItemListStatus {
        /**
         * 待上架
         */
        WAIT_LIST(0, "待上架"),
        /**
         * 已上架
         */
        LIST_STATUS(1, "已上架"),
        /**
         * 已下架
         */
        DOWN_LIST(2, "已下架");

        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private ItemListStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }

    /**
     * 订单取消状态
     */
    public enum OrderCancelStatus {
        /**
         * 未取消
         */
        NOT_CENCEL(0, "未取消"),
        /**
         * 已取消
         */
        CANCEL(1, "已取消");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private OrderCancelStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }
    /**
     * 订单来源状态
     */
    public enum OrderSouce {
        /**
         * 付费
         */
        PRICE(0, "付费"),
        /**
         * 秒杀
         */
        SPIKE(1, "秒杀"),
        /**
         * 抽奖
         */
        LOTTERY(2, "抽奖"),
        /**
         * 积分
         */
        INTEGRAL(3, "积分");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private OrderSouce(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }

    /**
     * 资讯  资讯状态（0:待审核 1：已发布 2已下线）
     */
    public enum NewsStatus {

        /**
         * 已下线
         */
        CANCEL(1, "已下线"),
        /**
         * 已发布
         */
        AUDITED(1, "已发布"),
        /**
         * 待审核
         */
        WAIT(0, "待审核");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private NewsStatus(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }

    /**
     * 是否选中
     */
    public enum IsFlag {
        /**
         * 未选中
         */
        NOT_FLAG(0, "未选中"),
        /**
         * 选中
         */
        FLAG(1, "选中");
        /**
         * value
         */
        private Integer value;
        /**
         * name
         */
        private String name;

        private IsFlag(Integer value, String name) {
            this.value = value;
            this.name = name;
        }

        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
    }
}
